﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using BolsaWeb.Dominio;
using BolsaWeb.Persistencia;
using System.Web.Security;

namespace BolsaWeb.Negocio
{
    public class SeguridadService
    {
        public const string SESSION_NAME = "AccountLogin";
        IUsuarioDAO UsuarioDAO { get; set; }
        public Usuario ValidarUsuario(string correo, string clave)
        {
            Usuario user = null;
            if (String.Empty.Equals(correo))
                throw new CuentaInvalidaException("Debe ingresar una cuenta de usuario válido");
            if (String.Empty.Equals(clave))
                throw new CuentaInvalidaException("Debe ingresar la clave");
            user = UsuarioDAO.BuscarUsuario(correo);
            if (user == null)
            {
                throw new CuentaInvalidaException("Usuario no existe");
            } else {
                if (user.Clave != clave)
                    throw new CuentaInvalidaException("Clave incorrecta");
            }
            return user;
        }
        public void LogOn(string user)
        {
            FormsAuthentication.SetAuthCookie(user, true);
        }
        public Usuario ConvertToUser(object o)
        {
            Usuario u = new Usuario();
            if (o.GetType() == typeof(Postulante)) {
                Postulante po = (Postulante) o;
                u.Id = po.Id;
                u.Tipo = Usuario.POSTULANTE;
                u.Correo = po.Correo;
                u.Clave = po.Clave;
            }
            else if (o.GetType() == typeof(Ofertante))
            {
                Ofertante po = (Ofertante)o;
                u.Id = po.id;
                u.Tipo = Usuario.OFERTANTE;
                u.Correo = po.Correo;
                u.Clave = po.Clave;
            }
            return u;
        }
    }
}